<?php





		

	//--------------------------------------------------------
	/*
	Humberto Javier Martínez Sandoval
	Crea el árbol que muestra las sucursales areas y departamentos a las que un usuario tiene acceso
	*/
	function buildArbol_Usuarios($idAccPadre, $Menu) 
	{
		$html = ''; 

		if (isset($Menu['ramas'][$idAccPadre])) 
		{ 
			$html = '<ul>';
			foreach ($Menu['ramas'][$idAccPadre] as $idAcceso) 
			{ 
			
				$html .= '<li id="li'.$idAcceso.'" title="' . $Menu['items'][$idAcceso]['sDescripcion'].'"><span id="'.$idAcceso.'" class="'. $Menu['items'][$idAcceso]['sClassCSS'].'">' . $Menu['items'][$idAcceso]['sNombre'].'</span>'; 
				// find childitems recursively 
				$html .= buildMenu_Perfiles($idAcceso, $Menu); 

				$html .= '</li>'; 
			} 
			$html .= '</ul>'; 
		} 

		return $html; 
	}
	
	


		function crearArregloAccesos($Menu){
			$outPut='';
			for ($i=0;$i<sizeof($Menu);$i++) 
			{ 
				$outPut.='g_Accesos['.$Menu[$i]['idAcceso'].']={
					idAcceso:'.$Menu[$i]['idAcceso'].',
					idAccPadre:'.$Menu[$i]['idAccPadre'].',
					Acceso:'.(($Menu[$i]['idPerfil']!=0 or $Menu[$i]['idrAsigPerm']==0)?1:0).',
					sNombre:"'.quitarSaltos($Menu[$i]['sNombre']).'",
					sDescripcion:"'.quitarSaltos($Menu[$i]['sDescripcion']).'",
					idrActivEtapas:'.$Menu[$i]['idrActivEtapas'].',
					
					sClassCSS:"'.quitarSaltos($Menu[$i]['sClassCSS']).'",
					sControlador:"'.quitarSaltos($Menu[$i]['sControlador']).'",
					sFuncion:"'.quitarSaltos($Menu[$i]['sFuncion']).'",
					sAlias:"'.quitarSaltos($Menu[$i]['sAlias']).'",
					nPosicion:"'.$Menu[$i]['nPosicion'].'",
					
					idrEscritura:'.$Menu[$i]['idrEscritura'].',
					idrSolicita:'.$Menu[$i]['idrSolicita'].',
					idrAcepta:'.$Menu[$i]['idrAcepta'].',
					idrRevisa:'.$Menu[$i]['idrRevisa'].',
					idrAprueba:'.$Menu[$i]['idrAprueba'].',
					idrAutoriza:'.$Menu[$i]['idrAutoriza'].',
					idrCancela:'.$Menu[$i]['idrCancela'].',
					idrCargSecc:'.$Menu[$i]['idrCargSecc'].',
					sFuncionJavaS:"'.quitarSaltos($Menu[$i]['sFuncionJavaS']).'",
					idrAsigPerm:'.$Menu[$i]['idrAsigPerm'].',
					idrTipoCarga:'.$Menu[$i]['idrTipoCarga'].',
					idrShow:'.$Menu[$i]['idrShow'].',
					idrSoloSuPer:'.$Menu[$i]['idrSoloSuPer'].',
						idrActiAcceso:'.$Menu[$i]['idrActiAcceso'].',
						idrActiEscritura:'.$Menu[$i]['idrActiEscritura'].'
				};
			';
			}
			return $outPut;
		}				
		
		/*
		Humberto Javier Martínez Sandoval
		ya sirve? ni le muevas!
		*/
		function crearArregloSAD($Lista){
		$outPut='';
		for ($i=0;$i<sizeof($Lista);$i++) 
		{ 
		if($Lista[$i]['idConsec']!=''){
		$outPut.='
		$("span[id$=_'.$Lista[$i]['idDetDept'].']").addClass("Nivel4Add");
		';
		}
		}
		return $outPut;
		}
		

		function crearArregloSADCaja($Lista){
		$outPut='';
		//print_r($Lista);
		for ($i=0;$i<sizeof($Lista);$i++) 
		{ 
		if($Lista[$i]['idCaja']!=''){
			
		$outPut.='
		$("span[id$=_'.$Lista[$i]['idDetDept'].']").addClass("Nivel4Add");
		';
		}
		}
		return $outPut;
		}
		

			function crearSelectPerfiles($Perfiles,$idPelfilSel=0){

			$optPerfiles='';
			for ($i=0;$i<sizeof($Perfiles);$i++) 
			{ 
			$sel=($Perfiles[$i]['idPerfil']==$idPelfilSel)?'selected="selected"':'';
			$optPerfiles.='<option '.$sel.' value="'.$Perfiles[$i]['idPerfil'].'">'.utf8_encode($Perfiles[$i]['sNombre']).'</option>';
			}
			
			return $optPerfiles;
			}
			
			

		function crearArregloPerfiles($Perfiles){
			$outPut='';
			for ($i=0;$i<sizeof($Perfiles);$i++) 
			{ 
				$outPut.='g_Perfiles['.$Perfiles[$i]['idPerfil'].']={
					idPerfil:'.$Perfiles[$i]['idPerfil'].',
					sNombre:"'.quitarSaltos($Perfiles[$i]['sNombre']).'",
					sDescripcion:"'.quitarSaltos($Perfiles[$i]['sDescripcion']).'"
				};
			';
			}
			return $outPut;
		}			
		
			
			

			function crearListaChecksPerfiles($Perfiles){

			$html='';
			for ($i=0;$i<sizeof($Perfiles);$i++) 
			{ 
			$html.='<br /><input type="checkbox" value="'.$Perfiles[$i]['idPerfil'].'" /> '.utf8_encode($Perfiles[$i]['sNombre']);
			}
			
			return $html;
			}


			function crearSelectAccesos($Accesos){
	
			$optAccesos='<option selected="selected" value="0" name="">'.'Primer Nivel'.'</option>';
			
			for ($i=0;$i<sizeof($Accesos);$i++) 
			{ 
			$optAccesos.='<option value="'.$Accesos[$i]['idAcceso'].'" name="'.utf8_encode($Accesos[$i]['sDescripcion']).'">'.utf8_encode($Accesos[$i]['sNombre']).'</option>';
			}
			
			return $optAccesos;
			}
			





	function crearArbolAccesos($Menu,$tipo=0){
							
			$Datos = array( 
				'items' => array(), 
				'ramas' => array() 
			); 
			$iMax=sizeof($Menu);
			for ($i=0;$i<$iMax;$i++) 
			{ 
				$Datos['items'][$Menu[$i]['idAcceso']] = $Menu[$i]; 
				$Datos['ramas'][$Menu[$i]['idAccPadre']][] = $Menu[$i]['idAcceso']; 
			}

			switch($tipo){
			case 0://ctrlPerfiles
			return	$accesos = buildMenu_Perfiles(0, $Datos);
			break;
			case 1://ctrCatAcceso
			return	$accesos = buildMenu_Perfiles(0, $Datos);
			break;
			case 2://ctrlMenu
			return	$accesos = buildMenu_Principal(0, $Datos);
			break;
			}		
	}
	
		
	function buildMenu_Perfiles($idAccPadre, $Menu) 
	{
		$html = ''; 

		if (isset($Menu['ramas'][$idAccPadre])) 
		{ 
			$html = '<ul>';
			foreach ($Menu['ramas'][$idAccPadre] as $idAcceso) 
			{ 
			
				$html .= '<li id="accLI'.$idAcceso.'" title="'.utf8_encode($Menu['items'][$idAcceso]['sDescripcion']).'" class="'.(($Menu['items'][$idAcceso]['idrSoloSuPer']==1)?' NoAccess ':'').'"><span id="acc'.$idAcceso.'" class="'. $Menu['items'][$idAcceso]['sClassCSS'].' '.(($Menu['items'][$idAcceso]['idrCargSecc']==1)?' RamaAcceso ':'').'">' .  utf8_encode($Menu['items'][$idAcceso]['sNombre']).'</span>'; 
				// find childitems recursively 
				$html .= buildMenu_Perfiles($idAcceso, $Menu); 

				$html .= '</li>'; 
			} 
			$html .= '</ul>'; 
		} 

		return $html; 
	}
		
	function buildMenu_Principal($idAccPadre, $Menu) 
	{
		$html = ''; 

		if (isset($Menu['ramas'][$idAccPadre])) 
		{ 
			$html = '<ul>'; 
			foreach ($Menu['ramas'][$idAccPadre] as $idAcceso) 
			{
						
		$idrCargSecc=$Menu['items'][$idAcceso]['idrCargSecc'];
		$idrTipoCarga=$Menu['items'][$idAcceso]['idrTipoCarga'];
		$Acceso=($Menu['items'][$idAcceso]['idPerfil']!=0 or $Menu['items'][$idAcceso]['idrAsigPerm']==0)?1:0;
		
		$sControlador=quitarSaltos($Menu['items'][$idAcceso]['sControlador']);
		$sFuncion=quitarSaltos($Menu['items'][$idAcceso]['sFuncion']);
		$idrEscritura=$Menu['items'][$idAcceso]['idrEscritura'];
		$idrShow=$Menu['items'][$idAcceso]['idrShow'];

		
		$clases='';
		
		if ($idrCargSecc==1){
		$clases.=' RamaAcceso ';
		
		if ($Acceso!=1)$clases.=' NoAccess ';
		
		}
		
		if ($idrShow!=1)$clases.=' NoMenu ';
		
		//echo $idrCargSecc.'--> '.$Acceso.'--> '.$clases.'-'.$Menu['items'][$idAcceso]['sNombre'].'<br>';

				$html .= '<li id="accLI'.$idAcceso.'" title="' . 
				 utf8_encode($Menu['items'][$idAcceso]['sDescripcion']).'" class="'.$clases.'">
				<span  class="'.$Menu['items'][$idAcceso]['sClassCSS'].'"';

				if($idrCargSecc==1)
				{
				if($idrTipoCarga==0)
				$html .='onclick="f_cargarSeccion(\''.$Menu['items'][$idAcceso]['sControlador'].'\',\''.$Menu['items'][$idAcceso]['sFuncion'].'\',\''. utf8_encode($Menu['items'][$idAcceso]['sNombre']).'\')"';	
				else
				$html .='onclick="eval(\''.$Menu['items'][$idAcceso]['sFuncionJavaS'].'\')"';	
				}
				
				$html .=' >' .  utf8_encode($Menu['items'][$idAcceso]['sNombre']).'</span>';
				// find childitems recursively 
				$html .= buildMenu_Principal($idAcceso, $Menu); 

				$html .= '</li>'; 
				
			}
			$html .= '</ul>'; 
		}
		return $html; 
	} 

	



		function f_nodo($Datos,$Nivel){
		

		$lv0=($Nivel>=0)?$Datos['Nivel0']:'0';
		$lv1=($Nivel>=1)?$Datos['Nivel1']:'0';
		$lv2=($Nivel>=2)?$Datos['Nivel2']:'0';
		$lv3=($Nivel>=3)?$Datos['Nivel3']:'0';
		$lv4=($Nivel>=4)?$Datos['Nivel4']:'0';
		$idDetDept=($Nivel>=4)?$Datos['idDetDept']:'';
		

		
		$es='
		';
		for($i=0;$i<$Nivel;$i++)$es.='	';//asì hago pruebas flea
		
		$html=$es.'<li class="'.$Nivel.'"><span id="Span_'.$lv0.'_'.$lv1.'_'.$lv2.'_'.$lv3.'_'.$lv4.'_'.$idDetDept.'" class="Nivel'.$Nivel.' '.(($Datos['Reciente']=='1')?'spanReciente':'').' ">'.$Datos['Nivel'.$Nivel].' '.utf8_encode($Datos['nombreNivel'.$Nivel]).'</span>';

		if($Nivel<4){
		$html.=$es.'<ul><!--abre lista-->';
		}else{
		$html.='</ui><!--depto-->';
		}

				return $html;
		
		}
		
		function f_cierreNodo($Nivel){
		$html='';
		
		$es='
		';
		for($i=0;$i<$Nivel;$i++)$es.='	';//asì hago pruebas flea
				
		$cierre=$es.'</ul></li>';
		
		$html.=($Nivel<4)?$cierre.'<!--nnn-->':'';
		$html.=($Nivel<3)?$cierre.'<!--nnn-->':'';
		$html.=($Nivel<2)?$cierre.'<!--nnn-->':'';
		$html.=($Nivel<1)?$cierre.'<!--nnn-->':'';
				
		
		return $html;
		}
		
		function get_Nodos($Nivel,$Datos,$Level){
		$html='';
				for ($i=$Nivel;$i<5;$i++){
						$Level[$i]=$Datos['Nivel'.$i];
						$html.=f_nodo($Datos,$i);
				}
				$Res['html']=$html;
				$Res['Level']=$Level;
				
				return $Res;
		}
			
	/*
	Humberto Javier Martínez Sandoval
	Regresa las listas que se muestran en para asignar las sucursales, areas y deptos
	*/
	function c_crearArbolSAD($Lista,$idm){
	
	//header("Content-type: text/plain");
	
	$Level=array();
	$Level[0]=$Level[1]=$Level[2]=$Level[3]=$Level[4]='0';


	$html='<ul class="arboles filetree">';
	if (sizeof($Lista)>0){
	foreach ($Lista as $Datos){
	
	
					if($Datos['Nivel0']!=$Level[0]){
					$Nivel=0;
					}else{
					
						if($Datos['Nivel1']!=$Level[1]){
							$Nivel=1;
							}else{
							
								if($Datos['Nivel2']!=$Level[2]){
									$Nivel=2;
									}else{
									
										if($Datos['Nivel3']!=$Level[3]){
										$Nivel=3;
											}else{
												$Nivel=4;
											}
									}
							}
					}

				$html.=($Level[$Nivel]!='0')?f_cierreNodo($Nivel):'';
				$Res=get_Nodos($Nivel,$Datos,$Level);
				$html.=$Res['html'];
				$Level=$Res['Level'];			


	}

	
	$html.=f_cierreNodo(3).'</ul></li>';
	
	}
	
	return $html;
	}
		
		
		
		
		
		
		
		
		
		
	function c_crearTablaSAD($Lista,$idm){
	
	//header("Content-type: text/plain");
	
	$Level=array();
	$Level[0]=$Level[1]=$Level[2]=$Level[3]=$Level[4]='0';


	$html='<table id="grdEstructuras" class="grdRes scrollableFixedHeaderTable">';
	$html.='<thead>';
	
	if(GetVarP('NombreUsuario')!=''){
	$html.='<tr style="text-align:center;font-size:18pt;font-weight:bold;">';
	$html.='<td colspan="2">'.GetVarP('NombreUsuario').'</td>';
	$html.='<td colspan="3">'.date('d/m/Y H:i:s').'</td>';
	$html.='</tr>';	
	}
	
	$html.='<tr header="header">';
	$html.='<th>'.$idm['lb18'].'</th>';
	$html.='<th>'.$idm['lb19'].'</th>';
	$html.='<th>'.$idm['lb20'].'</th>';
	$html.='<th>'.$idm['lb32_'].'</th>';
	$html.='<th>'.$idm['lb33'].'</th>';
	$html.='</tr>';

	$html.='</thead>';
	$html.='</tbody>';
	
	
	if (sizeof($Lista)>0){
	foreach ($Lista as $Datos){
	
	
					if($Datos['Nivel0']!=$Level[0]){
					$Nivel=0;
					}else{
					
						if($Datos['Nivel1']!=$Level[1]){
							$Nivel=1;
							}else{
							
								if($Datos['Nivel2']!=$Level[2]){
									$Nivel=2;
									}else{
									
										if($Datos['Nivel3']!=$Level[3]){
										$Nivel=3;
											}else{
												$Nivel=4;
											}
									}
							}
					}
					
				$Res=get_FilasSAD($Nivel,$Datos,$Level);
				$html.=$Res['html'];
				$Level=$Res['Level'];			


	}

	
	}
	
	$html.='</tbody></table>';
	
	if (GetVarP('Reporte')=='excel')$html=utf8_decode($html);
	
	return $html;
	}
		
		function get_FilasSAD($Nivel,$Datos,$Level){
		$html='';
				for ($i=$Nivel;$i<5;$i++){
						$Level[$i]=$Datos['Nivel'.$i];
				}
						$html.=get_FilaSAD($Datos,$Nivel);
				$Res['html']=$html;
				$Res['Level']=$Level;
				
				return $Res;
		}
		
		
		
		
		
		function get_FilaSAD($Datos,$Nivel){
		
		$lv = array();

		for($i=0;$i<5;$i++){
		$lv[$i]=($Nivel<=$i)?$Datos['Nivel'.$i].' '.utf8_encode($Datos['nombreNivel'.$i]):'';
		}
		
		$_POST['Class']=(GetVarP('Class')=='par')?'impar':'par';
		$html='<tr class="'.$_POST['Class'].'" '.(($Datos['idConsec']!='')?'':'style="color:#808000"').'>';
		for($i=0;$i<5;$i++){
		$html.='<td title="'.$lv[$i].'">'.((GetVarP('Reporte')=='excel')?$lv[$i]:substr($lv[$i],0,20)).'</td>';
		}
		$html.='</tr>';

				return $html;		
		}
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
?>